<?php
/**
 * php.db 패키지 함수 모음 
 * static 메소드에 대한 축약형
 * 
 * @package php.function
 */

/**
 * DBClient의 유틸리티 함수입니다.
 * 
 * <code>$db = db_('mssql', 'test_db', true); </code>
 *
 * @see DBClient::createConnector()
 * @param string $class  DBClient 상속한 클래스이름 (mssql, oracle, cubrid, mysql, mysql_i, sqlite, postgres)
 * @param string|array $db db설정 파일명 또는 db연결환경 배열 
 * @param bool $isConnect 객체생성시 연결을 바로 시킬지 결정, 바로 연결될려면 true, 아니면 false
 * @param string $type product, beta, dev 등등 정해진 설정으로 
 * @return Mssql|Oracle|Mysql|Cubrid|Postgres|Mysql_i|Sqlite DBClient 상속한 객체
 */
function db_($class, $db, $isConnect = false, $type = 'product') { 
	return DBClient::createConnector($class, $db, $isConnect, $type);
}

/**
 * DBClient의 유틸리티 함수입니다.
 * 
 * <code>$db = cubrid_('test_db', true); </code>
 *
 * @see db_()
 * @param string|array $db db설정 파일명 또는 db연결환경 배열 
 * @param bool $isConnect 객체생성시 연결을 바로 시킬지 결정, 바로 연결될려면 true, 아니면 false
 * @return Cubrid DBClient 상속한 객체
 */
function cubrid_($db, $isConnect = false, $type = 'product') { 
	return DB_('cubrid', $db, $isConnect, $type);
}

/**
 * Data 객체 생성 함수 
 * 
 * <code>echo dbdata_(null, '테이블');</code>
 * 
 * @param $connector IConnector 연결자
 * @param $table string 테이블이름
 * @return DBData 생성된 DBData 객체
 */
function dbdata_($connector = null, $table = null) { 
	return new DBData($connector, $table);
}

/**
 * DBClient의 유틸리티 함수입니다.
 * 
 * <code>$db = mssql_('test_db', true); </code>
 *
 * @see db_()
 * @param string|array $db db설정 파일명 또는 db연결환경 배열 
 * @param bool $isConnect 객체생성시 연결을 바로 시킬지 결정, 바로 연결될려면 true, 아니면 false
 * @param bool $isRemote 내부에서 링크드서버를 연결할 때 사용, 바로 연결될려면 true, 아니면 false
 * @return Mssql DBClient 상속한 객체
 */
function mssql_($db, $isConnect = false, $type = 'product') { 
	
	return db_('mssql', $db, $isConnect, $type);
}

/**
 * mysql의 유틸리티 함수입니다.
 * 
 * <code>$db = mysql_('test_db', true); </code>
 *
 * @see db_()
 * @param string|array $db db설정 파일명 또는 db연결환경 배열 
 * @param bool $isConnect 객체생성시 연결을 바로 시킬지 결정, 바로 연결될려면 true, 아니면 false
 * @return Mysql DBClient 상속한 객체
 */
function mysql_($db, $isConnect = false, $type = 'product') { 

	return db_('mysql', $db, $isConnect, $type);
}

/**
 * mysql_i 유틸리티 함수입니다.
 * 
 * <code>$db = mysqli_('test_db', true); </code>
 *
 * @see db_()
 * @param string|array $db db설정 파일명 또는 db연결환경 배열 
 * @param bool $isConnect 객체생성시 연결을 바로 시킬지 결정, 바로 연결될려면 true, 아니면 false
 * @return Mysql_i DBClient 상속한 객체
 */
function mysqli_($db, $isConnect = false, $type = 'product') { 
	return db_('mysqlimprove', $db, $isConnect, $type);
}

/**
 * oracle의 유틸리티 함수입니다.
 * 
 * <code>$db = oracle_('test_db', true); </code>
 *
 * @see db_()
 * @param string|array $db db설정 파일명 또는 db연결환경 배열 
 * @param bool $isConnect 객체생성시 연결을 바로 시킬지 결정, 바로 연결될려면 true, 아니면 false
 * @return Oracle DBClient 상속한 객체
 */
function oracle_($db, $isConnect = false, $type = 'product') { 
	return db_('oracle', $db, $isConnect, $type);
}

/**
 * postgres 의 유틸리티 함수입니다.
 * 
 * <code>$db = pg_('test_db', true); </code>
 *
 * @see db_()
 * @param string|array $db db설정 파일명 또는 db연결환경 배열 
 * @param bool $isConnect 객체생성시 연결을 바로 시킬지 결정, 바로 연결될려면 true, 아니면 false
 * @return Postgres DBClient 상속한 객체
 */
function postgres_($db, $isConnect = false, $type = 'product') { 
	return db_('postgres', $db, $isConnect, $type);
}

/**
 * sqlite 의 유틸리티 함수입니다.
 * 
 * <code>$db = sqlite_('test_db', true); </code>
 *
 * @see db_()
 * @param string|array $db db설정 파일명 또는 db연결환경 배열 
 * @param bool $isConnect 객체생성시 연결을 바로 시킬지 결정, 바로 연결될려면 true, 아니면 false
 * @return Sqlite DBClient 상속한 객체
 */
function sqlite_($db, $isConnect = false, $type = 'product') { 
	return db_('sqlite', $db, $isConnect, $type);
}

?>